#include <stdio.h>

// int main()
// {
//     //写入一个字符
//     FILE* pf=fopen("test.txt","w");
//     if(pf==NULL)
//     {
//         perror("fopen");
//     }
//     //写入一个字符
//     char i='a';
//     for(i='a';i<='z';i++)
//     {
//         fputc(i,pf);
//     }
//     //关闭文件
//     fclose(pf);
//     pf=NULL;
//     return 0;
// }
// int main()
// {
//     //
//     // char* fgets( char* restrict str, int count, FILE* restrict stream );
//     //读取一行数据
//     FILE* pf=fopen("test.txt","r");
//     if(pf==NULL)
//     {
//         perror("fopen");
//     }
//     //读取一行数据
//     char x[20];
//     fgets(x,5,pf);
//     printf("%s\n",x);
//     //关闭文件
//     fclose(pf);
//     pf=NULL;
//     return 0;
// }


//格式读入 格式写

struct Po
{
    char name[20];
    int age;
    float x;
};

int main()
{
    //函数原型--格式化读取
    //int fscanf( FILE *restrict stream, const char *restrict format, ... );

    struct Po p1={0};//将读取的数据放在 p1 里

    //打开文件

    FILE* pf=fopen("test.txt","r");
    if(pf==NULL)
    {
        perror("fopen");
    }

    //格式化读取数据
    fscanf(pf,"%s %d %f",p1.name,&(p1.age),&(p1.x));
    printf("%s %d %f\n",p1.name,p1.age,p1.x);

    //关闭文件
    fclose(pf);
    pf=NULL;
    return 0;
}
// int main()
// {
//     //函数原型--格式化写入
//     // int fprintf( FILE* restrict stream, const char* restrict format, ... );
//     struct Po p1={"zhaojiahao",22,179.5f};
//     //打开文件
//     FILE* pf=fopen("test.txt","w");
//     if(pf==NULL)
//     {
//         perror("fopen");
//     }
//     //格式写入一个数据
//     fprintf(pf,"%s %d %f\n",p1.name,p1.age,p1.x);

//     //关闭文件
//     fclose(pf);
//     pf=NULL;
//     return 0;
// }